Преимущество статического разделителя в том, что он может в разных частях использовать разные виды. Создаем приложение как MFC AppWizard с именем TestStatic и типом SDI. Добавим ссылку на класс разделителя в класс рамки:
class CMainFrame : public CFrameWnd
{
......
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CSplitterWnd m_wndSplitter;
// Generated message map functions
......
};
Перегрузим OnCreateClient() для создания разделителя:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
return CFrameWnd::OnCreateClient(lpcs, pContext);
}
Пока оставим так. Нам теперь нужен второй класс вида. Добавляем класс Insert - New Class с именем CTwoView и родителем CView. Теперь в коде реализации класса CMainFrame нужно добавить ссылки на эти классы видов.
// MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "TestStatic.h" #include "MainFrm.h" #include "TwoView.h" #include "TestStaticView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
А в описание класса CTestStaticView описание класса документа для GetDocument():
#include "TestStaticDoc.h"
Пора создавать разделитель:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
m_wndSplitter.CreateStatic(this,1,2);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CTestStaticView),
CSize(50,50),pContext);
return m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CTwoView),
CSize(50,50),pContext);
}
Будет вертикальный разделитель.